home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 2009 February
/
PCWFEB09.iso
/
Software
/
Linux
/
Kubuntu 8.10
/
kubuntu-8.10-desktop-i386.iso
/
casper
/
filesystem.squashfs
/
usr
/
share
/
perl5
/
Debconf
/
AutoSelect.pm
next >
Wrap
Text File
|
2008-10-10
|
2KB
|
78 lines
#!/usr/bin/perl -w
# This file was preprocessed, do not edit!
package Debconf::AutoSelect;
use strict;
use Debconf::Gettext;
use Debconf::ConfModule;
use Debconf::Config;
use Debconf::Log qw(:all);
use base qw(Exporter);
our @EXPORT_OK = qw(make_frontend make_confmodule);
our %EXPORT_TAGS = (all => [@EXPORT_OK]);
my %fallback=(
'Kde' => ['Dialog', 'Readline', 'Teletype'],
'Gnome' => ['Dialog', 'Readline', 'Teletype'],
'Web' => ['Dialog', 'Readline', 'Teletype'],
'Dialog' => ['Readline', 'Teletype'],
'Gtk' => ['Dialog', 'Readline', 'Teletype'],
'Readline' => ['Teletype', 'Dialog'],
'Editor' => ['Readline', 'Teletype'],
'Slang' => ['Dialog', 'Readline', 'Teletype'],
'Text' => ['Readline', 'Teletype', 'Dialog'],
);
my $frontend;
my $type;
sub make_frontend {
my $script=shift;
my $starttype=ucfirst($type);
if (! defined $starttype || ! length $starttype) {
$starttype = Debconf::Config->frontend;
if ($starttype =~ /^[A-Z]/) {
warn "Please do not capitalize the first letter of the debconf frontend.";
}
$starttype=ucfirst($starttype);
}
my $showfallback=0;
foreach $type ($starttype, @{$fallback{$starttype}}, 'Noninteractive') {
if (! $showfallback) {
debug user => "trying frontend $type";
}
else {
warn(sprintf(gettext("falling back to frontend: %s"), $type));
}
$frontend=eval qq{
use Debconf::FrontEnd::$type;
Debconf::FrontEnd::$type->new();
};
return $frontend if defined $frontend;
warn sprintf(gettext("unable to initialize frontend: %s"), $type);
$@=~s/\n.*//s;
warn "($@)";
$showfallback=1;
}
die sprintf(gettext("Unable to start a frontend: %s"), $@);
}
sub make_confmodule {
my $confmodule=Debconf::ConfModule->new(frontend => $frontend);
$confmodule->startup(@_) if @_;
return $confmodule;
}
1